下载 您所在的位置:网站首页 周易电子书 百度网盘下载安装 下载

下载

2023-12-25 08:10| 来源: 网络整理| 查看: 265

下载

更新时间: 2022-03-10

接口描述 权限说明 注意事项 请求结构 header参数 请求参数 响应参数 错误码 请求示例 SDK获取

接口描述

本接口用于将用户存储在网盘的云端文件下载到本地。文件下载分为三个阶段:获取文件列表、查询文件信息、下载文件。第二个阶段查询文件信息依赖第一个阶段获取文件列表的结果,第三个阶段下载文件依赖第二阶段查询文件信息的结果,串行完成这三个阶段任务后,云端文件成功下载到本地。

截屏2022-03-10 下午3.12.45.png

权限说明

所有API的安全认证一律采用百度OAuth2.0鉴权认证机制。

百度OAuth2.0鉴权认证机制的详细内容参见《开发者须知 > 接入流程》。

注意事项 通过【列表类接口】获取文件的唯一标识fsid,如请求获取文件列表接口 通过【查询文件信息接口】获取文件的下载地址,请求查询文件信息接口时需要将参数dlink置为1,接口返回的dlink字段即为文件的下载地址 使用dlink时,必须拼接 &access_token=xxx 参数 使用dlink时,必须在请求header中设置User-Agent字段为pan.baidu.com 设置好请求header,在dlink后拼接access_token参数后,进行下载操作 dlink有效期为8小时,过期后,dlink失效 dlink存在302跳转 不允许使用浏览器直接下载超过50MB的文件, 超过50MB的文件需用开发者原生的软件或者app进行下载 dlink支持断点续传,即通过在请求Header中指定Range参数,下载文件指定范围的数据。例: Range: bytes=0-499表示文件起始的500字节; Range: bytes=500-999表示文件的第二个500字节; Range: bytes=-500 表示文件最后500字节; Range: bytes=500-表示文件500字节以后的范围; Range: bytes=0-0,-1表示文件第一个字节和做后一个字节; Range: bytes=500-600,601-999 表示同时指定多个范围。

请求结构 GET DLINK&access_token=xxx HTTP/1.1 Host: d.pcs.baidu.com DLINK下载地址通过查询文件信息接口返回

header参数 名称 类型 是否必填 示例 参数位置 描述 User-Agent string 是 pan.baidu.com header 请求头部

请求参数 参数名称 类型 是否必填 示例 参数位置 描述 access_token string 是 12.a6b7dbd428f731035f771b8d15063f61.86400.1292922000-2346678-124328 URL参数 接口鉴权认证参数,标识用户

响应参数

如果下载成功,响应内容即为对应文件。

如果下载失败,会返回如下错误码。

错误码 错误码 错误描述 31045 access_token验证未通过,请检查access_token是否过期,用户授权时是否勾选网盘权限等。 31362 签名错误,请检查链接地址是否完整。 31326 命中防盗链,需检查User-Agent请求头是否正常。

更多错误码请参考《平台简介 > 错误码》中“公共错误码”部分。

请求示例 curl示例 curl -L -X GET 'https://d.pcs.baidu.com/file/1261d72d03471f7b7b805fd60e024b8d?fid=2082810368-250528-414244021542671&rt=pr&sign=FDtAERV-DCb740ccc5511e5e8fedcff06b081203-Rnos3iOhNnMF1pS44AUWwor%2BJw8%3D&expires=8h&chkbd=0&chkv=2&dp-logid=4111511902857508725&dp-callid=0&dstime=1596179809&r=802381259&access_token=12.a6b7dbd428f731035f771b8d15063f61.86400.1292922000-2346678-124328' \ -H 'User-Agent: pan.baidu.com' python 示例 import requests url = "https://d.pcs.baidu.com/file/1261d72d03471f7b7b805fd60e024b8d?fid=2082810368-250528-414244021542671&rt=pr&sign=FDtAERV-DCb740ccc5511e5e8fedcff06b08120-Rnos3iOhNnMF1pS44AUWwor%2BJw8%3D&expires=8h&chkbd=0&chkv=2&dp-logid=4111511902857508725&dp-callid=0&dstime=1596179809&r=802381259&access_token=12.a6b7dbd428f731035f771b8d15063f61.86400.1292922000-2346678-124328" payload = {} files = {} headers = { 'User-Agent': 'pan.baidu.com' } response = requests.request("GET", url, headers=headers, data = payload, files = files) print(response.text.encode('utf8')) java示例 import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class HttpGetRequestExample { public static void main(String[] args) { try { URL url = new URL("https://d.pcs.baidu.com/file/1261d72d03471f7b7b805fd60e024b8d?fid=2082810368-250528-414244021542671&rt=pr&sign=FDtAERV-DCb740ccc5511e5e8fedcff06b08120-Rnos3iOhNnMF1pS44AUWwor%2BJw8%3D&expires=8h&chkbd=0&chkv=2&dp-logid=4111511902857508725&dp-callid=0&dstime=1596179809&r=802381259&access_token=12.a6b7dbd428f731035f771b8d15063f61.86400.1292922000-2346678-124328"); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); httpConn.setRequestMethod("GET"); httpConn.setRequestProperty("User-Agent", "pan.baidu.com"); httpConn.setRequestProperty("Host", "d.pcs.baidu.com"); BufferedReader in = new BufferedReader(new InputStreamReader(httpConn.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); } catch (Exception e) { System.out.println(e); } } }

SDK获取

1.点击下载Go语言版本SDK:download.tar.gz

2.下载后,用tar -zxvf *.tar.gz命令即可解压。

3.解压后,您可看到在download 下有如下目录结构:

. ├── demo │ ├── download.go │ └── file_metas.go ├── download │ ├── download.go │ ├── file_metas.go │ └── types.go └── utils └── util.go

其中,demo为使用示例,您参考demo提供的接口参数进行调用,获取到接口返回结果。

download/file_metas.go为如何获取文件信息,并获得下载地址dlink。

download/download.go 为如何用dlink地址下载文件。

utils/utils.go 为发送http请求的函数实现,供获取文件信息和下载文件调用。

注意:

1.目前下载sdk仅支持小文件下载,如果涉及大文件,可参考该demo进行升级改造,涉及到分片下载、断点下载等技术。 2.如果遇到路径问题,建议使用 go.mod 方式管理依赖包(go mod资料)。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有